let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];

let whiteList = [
	'/pages/index/index',
	'/pages/login/login',
	'/pages/home/home',
	'/pages/mine/mine',
]

export default async function() {
	list.forEach(item => { //用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器
		uni.addInterceptor(item, {
			invoke(e) { // 调用前拦截
				//获取用户的token
				const token = uni.getStorageSync('token'),
					url = e.url.split('?')[0];
				//token是否已失效
				//获取要跳转的页面路径（url去掉"?"和"?"后的参数）
				let notNeed = whiteList.includes(url)

				if (!url.startsWith('/') && !url.startsWith('.')) url = '/' + url;
				// 如果在whiteList里面就不需要登录
				if (notNeed) {
					return e
				} else {
					//需要登录
					if (!token) {
						uni.navigateTo({
							url: '/pages/login/login'
						})
						return false
					} else {
						return e
					}
				}
			},
			fail(err) { // 失败回调拦截 
				console.log(err);
			}
		})
	})

}
